using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Collections.Generic;
using System.Collections;
using J2ME.RMS;
using Java.binario.bean;
using Nextel.Utils;

namespace Java.binario.rms
{
    public class RMSRuta : GestorRMS
    {

        private RutaBean bean = new RutaBean();
 
        public RMSRuta()  :
            base("RMS_RUTA")
        {
            
        }

        protected override Persistente createObjectBean()
        {
            return bean;
        }

        public void guardarLista(String codigoGrupo, List<Persistente> lista)
        {
            guardar(lista);
        }

        public void grabarRuta(DataOutputStream data, List<RutaBean> objectStack)
        {
            try
            {
                abrirRS();

                RutaBean bean;
                List<Persistente> listaRuta = new List<Persistente>();
                //mientras haya datos en la pila
                for (int i = 0; i < objectStack.Count; i++)
                {

                    bean = objectStack[i];

                    if (i % StringUtils.RMS_CANTREG == 0 && (listaRuta.Count > 0))
                    {
                        guardar(listaRuta);
                        listaRuta.Clear();

                    }

                    listaRuta.Add(bean);

                }

                if ((listaRuta.Count > 0))
                {
                    guardar(listaRuta);
                    listaRuta.Clear();

                }
                listaRuta = null;

                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////

                byte[] bytes = this.getDataByte();

                data.writeString(this.storeName);
                data.writeInt(bytes.Length);
                data.write(bytes);

                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////
                ////////////////////////////////////////////////////////////////////////////


            }
            finally
            {
                cerrarRS();

            }
        }
    }
    
    
}
